package cn.yilongquan.service;


import cn.yilongquan.user.domain.Role;
import cn.yilongquan.user.query.RoleQuery;
import cn.yilongquan.util.R;
import io.lettuce.core.dynamic.annotation.Param;

import java.util.List;

public interface RoleService {
    // 添加
    void add(Role role);

    // 根据ID删除
    void deleteById(Long id);

    // 批量删除
    void batchDelete(List<Long> ids);

    // 更新
    void update(Role role);

    // 根据ID查询
    Role findById(Long id);

    // 查询所有
    List<Role> findAll();

    // 分页查询
    R pageList(RoleQuery roleQuery);

    boolean isRoleCodeUnique(String code, Long excludeId);


    void saveRolePermissions(Long roleId, List<Long> permissionIds);
    List<Long> getPermissionIdsByRoleId(Long roleId);

    void saveRoleMenus(Long roleId, List<Long> menuIds); // 保存角色与菜单关联
    List<Long> getMenuIdsByRoleId(Long roleId);
}
